--- @since 25.2.26
--- @sync entry

-- setup 函数用于初始化插件配置
local function setup(self, opts)
	-- 将传入的配置参数 opts.open_multi 设置到当前对象的 open_multi 属性上
	self.open_multi = opts.open_multi
end

-- entry 函数是插件的入口点，用于处理文件或目录的打开操作
local function entry(self)
	-- 获取当前活动标签页中被悬停的文件或目录
	local h = cx.active.current.hovered
	
	-- 根据悬停对象是否是目录来决定触发进入目录还是打开文件的事件
	ya.mgr_emit(h and h.cha.is_dir and "enter" or "open", { hovered = not self.open_multi })
end

-- 返回插件的 entry 和 setup 函数
return { entry = entry, setup = setup }